-- *****************************************************************
-- REDSTONE-POLICY-MIB
--
-- Redstone Communications Inc. Enterprise MIB
-- Extensions for Policy management
--
-- Copyright 1999 Redstone Communications, Incorporated.
-- All Rights Reserved.
-- *****************************************************************

REDSTONE-POLICY-MIB DEFINITIONS ::= BEGIN

IMPORTS
    MODULE-IDENTITY,
    OBJECT-TYPE,
    Integer32,
    Counter32,
    Counter64,
    IpAddress,
    Unsigned32
        FROM SNMPv2-SMI

    RowStatus,
    TruthValue,
    DisplayString,
    TEXTUAL-CONVENTION
        FROM SNMPv2-TC

    MODULE-COMPLIANCE,
    OBJECT-GROUP
        FROM SNMPv2-CONF

    rsMgmt
        FROM REDSTONE-SMI;

rsPolicyMIB  MODULE-IDENTITY
    LAST-UPDATED "0005150000Z"
    ORGANIZATION "Redstone Communications, Inc."
    CONTACT-INFO
        "
        Redstone Communications, Inc.
        5 Carlisle Road
        Westford MA 01886
        USA

        Tel:    +1-978-692-1999
        Email:  mib@redstonecom.com
        "
    DESCRIPTION
        "The Policy MIB for the 
        Redstone Communications Inc. enterprise."
    REVISION      "0005150000Z"
    DESCRIPTION
        "Initial version of this MIB module."
    ::= { rsMgmt 27 }



-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-- Textual conventions
-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

RsClaclPortOperator ::= TEXTUAL-CONVENTION
    STATUS      current
    DESCRIPTION
        "Enumerates valid operators for use as source and
         destination port operators within a classifier
         control list."
    SYNTAX      INTEGER {
                    noOperator(0),
                    lt(1),
                    gt(2),
                    eq(3),
                    ne(4),
                    range(5)
                }

RsPolicyAttachmentType ::= TEXTUAL-CONVENTION
    STATUS      current
    DESCRIPTION
        "Enumerates the types of policy attachments."
    SYNTAX      INTEGER {
                    ingressAttachment(1),
                    egressAttachment(2)
                }

RsPolicyIpFragValue ::= TEXTUAL-CONVENTION
    STATUS           current
    DESCRIPTION 
        "Enumerates the values for IP frag offset classification."
    SYNTAX       INTEGER {
                     equalToZero(0),
                     equalToOne(1),
                     reserved1(2),
                     greaterThenOne(3),
                     notSpecified(4)
                 }


-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-- Managed objects
-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

rsPolicyObjects              OBJECT IDENTIFIER ::= { rsPolicyMIB 1 }
rsClassifierControlList      OBJECT IDENTIFIER ::= { rsPolicyObjects 1 }
rsRateLimitControlList       OBJECT IDENTIFIER ::= { rsPolicyObjects 2 }
rsPolicy                     OBJECT IDENTIFIER ::= { rsPolicyObjects 3 }
rsPolicyIf                   OBJECT IDENTIFIER ::= { rsPolicyObjects 4 }
rsPolicyProfile             OBJECT IDENTIFIER ::= { rsPolicyObjects 5 }
rsPolicyStatistics           OBJECT IDENTIFIER ::= { rsPolicyObjects 6 }
rsTrafficShapeControlList    OBJECT IDENTIFIER ::= { rsPolicyObjects 7 }


-- +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-- Policy Tables
-- +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

--
-- The policy table
--

rsPolicyNextIndex OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "This scalar object returns the index of the next available row
         in the rsPolicyTable."
::= { rsPolicy 1 }

rsPolicyTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF RsPolicyEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "This table contains entries which represent the non-repetive 
         fields of a policy definition." 
    ::= { rsPolicy 2 }

rsPolicyEntry OBJECT-TYPE
    SYNTAX      RsPolicyEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "Each entry contains the non-repetitive fields of a policy
         definition."
    INDEX   { rsPolicyId }
    ::= { rsPolicyTable 1 }

RsPolicyEntry ::= SEQUENCE {
    rsPolicyId
        Integer32,
    rsPolicyRowStatus
        RowStatus,
    rsPolicyAdminState
        INTEGER,
    rsPolicyOperStatus
        INTEGER,
    rsPolicyErrorValue
        Integer32,
    rsPolicyName
        DisplayString,
    rsPolicyReferenceCount
        Counter32,
    rsPolicyRuleNextIndex
        Integer32
    }

rsPolicyId OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "The number of the policy table  entry which is defined by this row."
    ::= { rsPolicyEntry 1 }

rsPolicyRowStatus OBJECT-TYPE
    SYNTAX      RowStatus
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "Controls creation/deletion of entries in this table
        according to the RowStatus textual convention, 
        constrained to support the following values only:

            createAndGo
            destroy

        *** LIMITED ACCESS LIST CONFIGURATION LEVEL ***

         1) RowStatus createAndGo/destroy operations
            have the following special-purpose semantics:

                createAndGo         Create an entry having the specified
                                    configuration and append it to the 
                                    target list, i.e. create a policy table
                                    entry with the associated policy name.

                destroy             Destroy the specified list and all of 
                                    its constituent elements.

         Policy row members may not be modified once the row has been
         created."
    ::= { rsPolicyEntry 2 }

rsPolicyAdminState OBJECT-TYPE
    SYNTAX      INTEGER {
                    disable(0),
                    enable(1)
                }
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "This object is used to control the 
         administrative state of a policy.  Enabling
         a policy will result in the rules which make
         up a policy being applied to interfaces to which
         the policy is assigned.

         Disabling a policy results in the the policy being
         taken out of service.

        This object may be modified while the row is active."
    DEFVAL { 0 }
    ::= { rsPolicyEntry 3 }

rsPolicyOperStatus OBJECT-TYPE
    SYNTAX      INTEGER {
                    disabled(0),
                    invalid(1),
                    enabled(2)
                }
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "This object is used to retrieve the operational state 
         of a policy.

         If a policy is disabled, it is not applied to any 
         interfaces within the system.

         If a policy is invalid, there is a problem with the
         policy preventing it from being applied to an interface.
         An error code providing diagnostic information about 
         the problem is found in rsPolicyErrorValue.

         If a policy is enabled, it has been applied to one or
         more interfaces within the system."
    ::= { rsPolicyEntry 4 }

rsPolicyErrorValue OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "An error code providing diagnostic information for invalid
         policies.  The enumeration of this field is TBD.  A zero (0)
         value indicates that there is no error reported."
    ::= { rsPolicyEntry 5 }

rsPolicyName OBJECT-TYPE
    SYNTAX      DisplayString(SIZE(1..16))
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "Specifies the name of the policy defined by this row."
    ::= { rsPolicyEntry 6 }

rsPolicyReferenceCount OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "Reflects the number of times this policy has been
        applied within the chassis."
    ::= { rsPolicyEntry 7 }

rsPolicyRuleNextIndex OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "Read only variable which provides the next available
         PolicyRuleIndex with respect to the policy defined
         by this row."
    ::= { rsPolicyEntry 8 }

--
-- The Policy Rule table
--

rsPolicyRuleTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF RsPolicyRuleEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "Each entry within this table defines a rule component of a policy.
         The entries in this table are created automatically when entries
         are created in specific rule tables.  This table is read only"
    ::= { rsPolicy 3 }

rsPolicyRuleEntry OBJECT-TYPE
    SYNTAX      RsPolicyRuleEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "Each entry defines a single rule component."
    INDEX   { rsPolicyRulePolicyId, rsPolicyRulePrec, rsPolicyRuleId }
    ::= { rsPolicyRuleTable 1 }

RsPolicyRuleEntry ::= SEQUENCE {
    rsPolicyRulePolicyId
        Integer32,
    rsPolicyRulePrec
        Integer32,
    rsPolicyRuleId
        Integer32,
    rsPolicyRuleType
        INTEGER,
    rsPolicySuspend
        TruthValue,
    rsPolicyEclipsed
        TruthValue
    }

rsPolicyRulePolicyId OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "The PolicyTable index of the policy which owns this rule."
    ::= { rsPolicyRuleEntry 1 }

rsPolicyRulePrec OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "The precedence of this rule within this group of policy rules."
    ::= { rsPolicyRuleEntry 2 }


rsPolicyRuleId OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "The index of this rule within the set of rules owned by the
         policy defined by rsPolicyRulePolicyId."
    ::= { rsPolicyRuleEntry 3 }


rsPolicyRuleType OBJECT-TYPE
    SYNTAX      INTEGER {
                    noRule(0),
                    nextHopRule (1),
                    filterRule (2),
                    nextInterfaceRule (3),
                    rateLimitRule (4),
                    markingRule (5),
                    reservedRule (6),
                    forwardRule (7),
                    logRule (8),
                    trafficShapeRule (9),
                    reserved2Rule (10)
                }
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "This field specifies the type of rule being defined.
         The remaining information which makes up this rule is
         found in the specific rule table defined by rsPolicyRuleType.
         The specific rule tables are indexed by 
         rsPolicyRulePolicyId.rsPolicyRuleId."
    DEFVAL { 0 }
    ::= { rsPolicyRuleEntry 4 }

rsPolicySuspend OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "Setting this object to true results in the rule being
         suspended (taken out of service). Setting this value
         to false results in the rule being returned to service.
        "
    DEFVAL { false }
    ::= { rsPolicyRuleEntry 5 } 

rsPolicyEclipsed OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "This value is true if the policy rule is eclipsed. A 
         policy rule is eclipsed if a conflicting rule with the
         same classifier control list precedes the rule, and
         the preceding rule is not suspended.  A false value
         indicates that the rule is not eclipsed.
        "
    ::= { rsPolicyRuleEntry 6 } 
--
-- Policy Rule Specific rule tables
--

--
-- Next-hop rule specific rule table.
rsNextHopRuleTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF RsNextHopRuleEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "A list of entries which provide next-hop rule data.
        Rows created in this table result in an entry being
        created in the policy rule table."
    ::= { rsPolicy 4 }

rsNextHopRuleEntry OBJECT-TYPE
    SYNTAX      RsNextHopRuleEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "A next-hop rule entry."
    INDEX   { rsPolicyRulePolicyId, rsPolicyRulePrec, rsPolicyRuleId }
    ::= { rsNextHopRuleTable 1 }

RsNextHopRuleEntry ::=
    SEQUENCE {
        rsNextHopRowStatus
            RowStatus,
        rsNextHopIpAddress
            IpAddress,
        rsNextHopClaclId
            Integer32
    }


rsNextHopRowStatus OBJECT-TYPE
    SYNTAX      RowStatus
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "Controls creation/deletion of conceptual rows within
         this table. 

        The next-hop ip address is mandatory and must be 
        specified.

         Modes supported are create-and-go and destroy. "
    ::= { rsNextHopRuleEntry 1 }

rsNextHopIpAddress OBJECT-TYPE
    SYNTAX      IpAddress
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "The ip address to forward all packets to."
    DEFVAL { 0 }
    ::= { rsNextHopRuleEntry 2 }

rsNextHopClaclId OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "The classifier control list id  which completes the
         NextHop policy rule."
    DEFVAL { 0 }
    ::= { rsNextHopRuleEntry 3 }

--
-- Filter rule augmentation table.
--
rsFilterRuleTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF RsFilterRuleEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "A list of entries which provide filter rule data.
         Creation of an entry in this table results in a
         corresponding entry being created in the policy rule
         table."
    ::= { rsPolicy 5 }

rsFilterRuleEntry OBJECT-TYPE
    SYNTAX      RsFilterRuleEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "A filter rule entry."
    INDEX   { rsPolicyRulePolicyId, rsPolicyRulePrec, rsPolicyRuleId }
    ::= { rsFilterRuleTable 1 }

RsFilterRuleEntry ::=
    SEQUENCE {
        rsFilterRowStatus
            RowStatus,
        rsFilterClaclId
            Integer32
    }

rsFilterRowStatus OBJECT-TYPE
    SYNTAX      RowStatus
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "Controls creation/deletion of conceptual rows within
         this table. 

         Modes supported are create-and-go and destroy. "
    ::= { rsFilterRuleEntry 1 }

rsFilterClaclId OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "The classifier control list id  which completes the
         filter policy rule."
    DEFVAL { 0 }
    ::= { rsFilterRuleEntry 2 }

--
-- Next-Interface rule  table.
--
rsNextInterfaceRuleTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF RsNextInterfaceRuleEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "A list of entries which provide NextInterface rule data.
         Creation of entries in the table result in a corresponding
         entry being created in the policy rule table."
    ::= { rsPolicy 6 }

rsNextInterfaceRuleEntry OBJECT-TYPE
    SYNTAX      RsNextInterfaceRuleEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "A NextInterface rule entry."
    INDEX   { rsPolicyRulePolicyId, rsPolicyRulePrec, rsPolicyRuleId }
    ::= { rsNextInterfaceRuleTable 1 }

RsNextInterfaceRuleEntry ::=
    SEQUENCE {
        rsNextInterfaceRowStatus
            RowStatus,
        rsNextInterfaceId
            Integer32,
        rsNextInterfaceClaclId
            Integer32,
        rsNextInterfaceNextHop
            IpAddress
    }

rsNextInterfaceRowStatus OBJECT-TYPE
    SYNTAX      RowStatus
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "Controls creation/deletion of conceptual rows within
         this table. 
    
         The next-interface parameter is mandatory and must be
         specified.

         Modes supported are create-and-go and destroy. "
    ::= { rsNextInterfaceRuleEntry 1 }

rsNextInterfaceId OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "The interface index to which traffic matching the
         CLACL id will be routed."
    ::= { rsNextInterfaceRuleEntry 2 }

rsNextInterfaceClaclId OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "The classifier control list id  which completes the
         NextInterface policy rule."
    DEFVAL { 0 }
    ::= { rsNextInterfaceRuleEntry 3 }

rsNextInterfaceNextHop OBJECT-TYPE
    SYNTAX      IpAddress
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "The ip address to forward all packets to."
    DEFVAL { 0 }
    ::= { rsNextInterfaceRuleEntry 4 }

--
-- RateLimit rule  table.
--
rsRateLimitRuleTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF RsRateLimitRuleEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "A list of entries which provide RateLimit rule data.
         Creation of entries in the table result in a corresponding
         entry being created in the policy rule table."
    ::= { rsPolicy 7 }

rsRateLimitRuleEntry OBJECT-TYPE
    SYNTAX      RsRateLimitRuleEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "A RateLimit rule entry."
    INDEX   { rsPolicyRulePolicyId, rsPolicyRulePrec, rsPolicyRuleId }
    ::= { rsRateLimitRuleTable 1 }

RsRateLimitRuleEntry ::=
    SEQUENCE {
        rsRateLimitRowStatus
            RowStatus,
        rsRateLimitId
            Integer32,
        rsRateLimitClaclId
            Integer32
    }

rsRateLimitRowStatus OBJECT-TYPE
    SYNTAX      RowStatus
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "Controls creation/deletion of conceptual rows within
         this table. 

         The rate limit profile id is mandatory and must be
         specified.

         Modes supported are create-and-go and destroy. "
    ::= { rsRateLimitRuleEntry 1 }


rsRateLimitId OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "The RLP id which provides the rate limit data which
         completes the RateLimit policy rule."
    ::= { rsRateLimitRuleEntry 2 }

rsRateLimitClaclId OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "The classifier control list id  which fills out the
         RateLimit policy rule."
    DEFVAL { 0 }
    ::= { rsRateLimitRuleEntry 3 }

--
-- Marking rule  table.
--
rsMarkingRuleTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF RsMarkingRuleEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "A list of entries which provide Marking rule data.
         Creation of entries in the table result in a corresponding
         entry being created in the policy rule table."
    ::= { rsPolicy 8 }

rsMarkingRuleEntry OBJECT-TYPE
    SYNTAX      RsMarkingRuleEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "A Marking rule entry."
    INDEX   { rsPolicyRulePolicyId, rsPolicyRulePrec, rsPolicyRuleId }
    ::= { rsMarkingRuleTable 1 }

RsMarkingRuleEntry ::=
    SEQUENCE {
        rsMarkingRowStatus
            RowStatus,
        rsMarkingTOSByte
            Integer32,
        rsMarkingMask
            Integer32,
        rsMarkingClaclId
            Integer32
    }

rsMarkingRowStatus OBJECT-TYPE
    SYNTAX      RowStatus
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "Controls creation/deletion of conceptual rows within
         this table. 

         The ip precedence field is mandatory and must be 
         specified.

         Modes supported are create-and-go and destroy. "
    ::= { rsMarkingRuleEntry 1 }


rsMarkingTOSByte OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "The ip precedence value associated with this policy
         rule."
    ::= { rsMarkingRuleEntry 2 }

rsMarkingMask OBJECT-TYPE
    SYNTAX      Integer32 (0..255)
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "The mask to use for tos byte checks."
    DEFVAL  { 0 }
    ::= { rsMarkingRuleEntry 3 }

rsMarkingClaclId OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "The classifier control list id  which fills out the
         Marking policy rule."
    DEFVAL { 0 }
    ::= { rsMarkingRuleEntry 4 }


--
-- Forward rule augmentation table.
--
rsForwardRuleTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF RsForwardRuleEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "A list of entries which provide forward rule data.
         Creation of an entry in this table results in a
         corresponding entry being created in the policy rule
         table."
    ::= { rsPolicy 9 }

rsForwardRuleEntry OBJECT-TYPE
    SYNTAX      RsForwardRuleEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "A forward rule entry."
    INDEX   { rsPolicyRulePolicyId, rsPolicyRulePrec, rsPolicyRuleId }
    ::= { rsForwardRuleTable 1 }

RsForwardRuleEntry ::=
    SEQUENCE {
        rsForwardRowStatus
            RowStatus,
        rsForwardClaclId
            Integer32
    }

rsForwardRowStatus OBJECT-TYPE
    SYNTAX      RowStatus
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "Controls creation/deletion of conceptual rows within
         this table. 

         Modes supported are create-and-go and destroy. "
    ::= { rsForwardRuleEntry 1 }

rsForwardClaclId OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "The classifier control list id  which completes the
         forward policy rule."
    DEFVAL { 0 }
    ::= { rsForwardRuleEntry 2 }

--
-- TrafficShape rule  table.
--
rsTrafficShapeRuleTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF RsTrafficShapeRuleEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "A list of entries which provide TrafficShape rule data.
         Creation of entries in the table result in a corresponding
         entry being created in the policy rule table."
    ::= { rsPolicy 10 }

rsTrafficShapeRuleEntry OBJECT-TYPE
    SYNTAX      RsTrafficShapeRuleEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "A TrafficShape rule entry."
    INDEX   { rsPolicyRulePolicyId, rsPolicyRulePrec, rsPolicyRuleId }
    ::= { rsTrafficShapeRuleTable 1 }

RsTrafficShapeRuleEntry ::=
    SEQUENCE {
        rsTrafficShapeRowStatus
            RowStatus,
        rsTrafficShapeId
            Integer32
    }

rsTrafficShapeRowStatus OBJECT-TYPE
    SYNTAX      RowStatus
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "Controls creation/deletion of conceptual rows within
         this table. 

         The traffic shape profile id is mandatory and must be
         specified.

         Modes supported are create-and-go and destroy. "
    ::= { rsTrafficShapeRuleEntry 1 }


rsTrafficShapeId OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "The RLP id which provides the rate limit data which
         completes the TrafficShape policy rule."
    ::= { rsTrafficShapeRuleEntry 2 }

--
-- Reserve { rsPolicy 11 } for the color rule
--

--
-- Log rule augmentation table.
--
rsLogRuleTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF RsLogRuleEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "A list of entries which provide log rule data.
         Creation of an entry in this table results in a
         corresponding entry being created in the policy rule
         table."
    ::= { rsPolicy 12 }

rsLogRuleEntry OBJECT-TYPE
    SYNTAX      RsLogRuleEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "A log rule entry."
    INDEX   { rsPolicyRulePolicyId, rsPolicyRulePrec, rsPolicyRuleId }
    ::= { rsLogRuleTable 1 }

RsLogRuleEntry ::=
    SEQUENCE {
        rsLogRowStatus
            RowStatus,
        rsLogClaclId
            Integer32
    }

rsLogRowStatus OBJECT-TYPE
    SYNTAX      RowStatus
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "Controls creation/deletion of conceptual rows within
         this table. 

         Modes supported are create-and-go and destroy. "
    ::= { rsLogRuleEntry 1 }

rsLogClaclId OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "The classifier control list id  which completes the
         log policy rule."
    DEFVAL { 0 }
    ::= { rsLogRuleEntry 2 }


-- +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-- Rate Limit Profile Lists
-- +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

--
-- The Rate Limit list
--

rsRateLimitProfileNextIndex OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "This scalar object returns the index of the next available row
         in the rsRateLimitProfileTable."
::= { rsRateLimitControlList 1 }

rsRateLimitProfileTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF RsRateLimitProfileEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "This table contains entries for elements of Rate Limit 
         Profile definitions."
    ::= { rsRateLimitControlList 2 }

rsRateLimitProfileEntry OBJECT-TYPE
    SYNTAX      RsRateLimitProfileEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "Each entry describes the characteristics of a rate limit 
         profile element."
    INDEX   { rsRateLimitProfileId }
    ::= { rsRateLimitProfileTable 1 }

RsRateLimitProfileEntry ::= SEQUENCE {
    rsRateLimitProfileId
        Integer32,
    rsRateLimitProfileRowStatus
        RowStatus,
    rsRateLimitProfileName
        DisplayString,
    rsRateLimitReferenceCount
        Counter32,
    rsRateLimitCommittedBps
        Integer32,
    rsRateLimitCommittedBurst
        Integer32,
    rsRateLimitExceedBps
        Integer32,
    rsRateLimitExceedBurst
        Integer32,
    rsRateLimitCommittedAction
        INTEGER,
    rsRateLimitConformedAction
        INTEGER,
    rsRateLimitExceededAction
        INTEGER,
    rsRateLimitCommittedMarkVal
        Integer32,
    rsRateLimitConformedMarkVal
        Integer32,
    rsRateLimitExceededMarkVal
        Integer32,
    rsRateLimitMask
        Integer32
    }

rsRateLimitProfileId OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "The number of the rate limit profile entry which is defined by this row."
    ::= { rsRateLimitProfileEntry 1 }


rsRateLimitProfileRowStatus OBJECT-TYPE
    SYNTAX      RowStatus
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "Controls creation/deletion of conceptual rows within
         this table.  

         All rowStatus modes are supported.

         To create an entry in this table, the following 
         entry objects MUST be explicitly configured:

             rsRateLimitProfileRowStatus
        "
    ::= { rsRateLimitProfileEntry 2 }

rsRateLimitProfileName OBJECT-TYPE
    SYNTAX      DisplayString(SIZE(1..16))
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "Specifies the name of the rate limit profile defined by this row."
    ::= { rsRateLimitProfileEntry 3 }

rsRateLimitReferenceCount OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION 
        "This object reflects the number of times a rate
         limit profile object is referenced by policies. "
    ::= { rsRateLimitProfileEntry 4 }

rsRateLimitCommittedBps OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "The committed access rate in bits per second."
    DEFVAL { 0 }
    ::= { rsRateLimitProfileEntry 5 }

rsRateLimitCommittedBurst OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "The committed access rate burst value in Bytes."
    DEFVAL { 16384 }
    ::= { rsRateLimitProfileEntry 6 }

rsRateLimitExceedBps OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "The peak access rate in bits per second."
    DEFVAL { 0 }
    ::= { rsRateLimitProfileEntry 7 }

rsRateLimitExceedBurst OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "The peak access rate burst value in Bytes."
    DEFVAL { 16384 }
    ::= { rsRateLimitProfileEntry 8 }

rsRateLimitCommittedAction OBJECT-TYPE
    SYNTAX  INTEGER {
                transmit (0),
                drop (1),
                mark(2)
            }
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "Action to be taken when the access rate is within
         the bounds of the committed access rate."
    DEFVAL { transmit }
    ::= { rsRateLimitProfileEntry 9 }

rsRateLimitConformedAction OBJECT-TYPE
    SYNTAX  INTEGER {
                transmit (0),
                drop (1),
                mark(2)
            }
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "Action to be taken when the access rate exceeds
         the bounds of the committed access rate."
    DEFVAL { transmit }
    ::= { rsRateLimitProfileEntry 10 }

rsRateLimitExceededAction OBJECT-TYPE
    SYNTAX  INTEGER {
                transmit (0),
                drop (1),
                mark(2)
            }
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "Action to be taken when the access rate exceeds
         the bounds of the peak access rate."
    DEFVAL { transmit }
    ::= { rsRateLimitProfileEntry 11 }

rsRateLimitCommittedMarkVal OBJECT-TYPE
    SYNTAX  Integer32
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "New ip precedence to be used when the rsRateLimitCommittedAction
         mark action is applied."
    DEFVAL { 0 }
    ::= { rsRateLimitProfileEntry 12 }

rsRateLimitConformedMarkVal OBJECT-TYPE
    SYNTAX  Integer32
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "New ip prececence to be used when the rsRateLimitExceedCommittedAction
         mark action is applied."
    DEFVAL { 0 }
    ::= { rsRateLimitProfileEntry 13 }

rsRateLimitExceededMarkVal OBJECT-TYPE
    SYNTAX  Integer32
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "New ip precedence to be used when the rsRateLimitExceedPeakAction
         mark action is applied."
    DEFVAL { 0 }
    ::= { rsRateLimitProfileEntry 14 }

rsRateLimitMask OBJECT-TYPE
    SYNTAX  Integer32 (0..255)
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "Mask to be applied when executing a mark action."
    DEFVAL { 0 }
    ::= { rsRateLimitProfileEntry 15 }

-- +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-- Traffic Shape Profile Lists
-- +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

--
-- The Traffic Shape list
--

rsTrafficShapeProfileNextIndex OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "This scalar object returns the index of the next available row
         in the rsTrafficShapeProfileTable."
::= { rsTrafficShapeControlList 1 }

rsTrafficShapeProfileTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF RsTrafficShapeProfileEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "This table contains entries for elements of Traffic Shape 
         Profile definitions."
    ::= { rsTrafficShapeControlList 2 }

rsTrafficShapeProfileEntry OBJECT-TYPE
    SYNTAX      RsTrafficShapeProfileEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "Each entry describes the characteristics of a traffic shape
         profile element."
    INDEX   { rsTrafficShapeProfileId }
    ::= { rsTrafficShapeProfileTable 1 }

RsTrafficShapeProfileEntry ::= SEQUENCE {
    rsTrafficShapeProfileId
        Integer32,
    rsTrafficShapeProfileRowStatus
        RowStatus,
    rsTrafficShapeProfileName
        DisplayString,
    rsTrafficShapeReferenceCount
        Counter32,
    rsTrafficShapeRate
        Integer32,
    rsTrafficShapeBurst
        Integer32
    }

rsTrafficShapeProfileId OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "The number of the traffic shape profile entry which is defined by this row."
    ::= { rsTrafficShapeProfileEntry 1 }


rsTrafficShapeProfileRowStatus OBJECT-TYPE
    SYNTAX      RowStatus
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "Controls creation/deletion of conceptual rows within
         this table.  

         All rowStatus modes are supported.

         To create an entry in this table, the following 
         entry objects MUST be explicitly configured:

             rsTrafficShapeProfileRowStatus
        "
    ::= { rsTrafficShapeProfileEntry 2 }

rsTrafficShapeProfileName OBJECT-TYPE
    SYNTAX      DisplayString(SIZE(1..16))
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "Specifies the name of the traffic shape profile defined by this row."
    ::= { rsTrafficShapeProfileEntry 3 }

rsTrafficShapeReferenceCount OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION 
        "This object reflects the number of times a traffic
         shape profile object is referenced by policies. "
    ::= { rsTrafficShapeProfileEntry 4 }

rsTrafficShapeRate OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "The traffic shape rate in bits per second."
    DEFVAL { 0 }
    ::= { rsTrafficShapeProfileEntry 5 }

rsTrafficShapeBurst OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "The traffic shape burst in bytes."
    DEFVAL { 0 }
    ::= { rsTrafficShapeProfileEntry 6 }

-- +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-- Classifier Control Lists
-- +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

--
-- The Classifier control list
--

rsClassifierControlListNextIndex OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "This scalar object returns the index of the next available row
         in the rsClassifierControlListTable."
::= { rsClassifierControlList 1 }

rsClassifierControlListTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF RsClassifierControlListEntry
    MAX-ACCESS  not-accessible
    STATUS      current

    DESCRIPTION
        "This table contains entries for elements of classifier control 
        lists. The details pertinent to each CLACL are found in
        the rsClassifierControlDefTable."
    ::= { rsClassifierControlList 2 }

rsClassifierControlListEntry OBJECT-TYPE
    SYNTAX      RsClassifierControlListEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "Each entry describes the characteristics of an IP access list element."
    INDEX   { rsClassifierControlListId }
    ::= { rsClassifierControlListTable 1 }

RsClassifierControlListEntry ::= SEQUENCE {
    rsClassifierControlListId
        Integer32,
    rsClassifierControlListRowStatus
        RowStatus,
    rsClassifierControlListName
        DisplayString,
    rsClassifierControlListReferenceCount
        Counter32,
    rsClassifierControlListNextElementIndex
        Integer32
    }

rsClassifierControlListId OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "The number of the classifier control list to which this entry belongs."
    ::= { rsClassifierControlListEntry 1 }

rsClassifierControlListRowStatus OBJECT-TYPE
    SYNTAX      RowStatus
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "Controls creation/deletion of conceptual rows within
         this table.  

         Modes supported are create-and-go and destroy.

         To create an entry in this table, the following 
         entry objects MUST be explicitly configured:

             rsClassifierControlListRowStatus
             rsClassifierControlListElemId
        "
    ::= { rsClassifierControlListEntry 3 }

rsClassifierControlListName OBJECT-TYPE
    SYNTAX      DisplayString(SIZE(1..16))
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "The name of the CLACL being defined."
    ::= { rsClassifierControlListEntry 4 }

rsClassifierControlListReferenceCount OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "Number of times this CLACL is referenced by policies."
    ::= { rsClassifierControlListEntry 5 }

rsClassifierControlListNextElementIndex OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "Each get of this object will return a unique index
         which may be used to create classifier control list
         elements."
    ::= { rsClassifierControlListEntry 6 }



rsClassifierControlListElementTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF RsClassifierControlListElementEntry
    MAX-ACCESS  not-accessible
    STATUS      current

    DESCRIPTION
        "This table contains entries for elements of classifier control 
        lists. Entries belonging to the same control list are ordered, and 
        comparisons to those entries are performed in that order until
        a match is detected. If no match is found, the default action
        is to 'deny'."
    ::= { rsClassifierControlList 4 }

rsClassifierControlListElementEntry OBJECT-TYPE
    SYNTAX      RsClassifierControlListElementEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "Each entry describes the characteristics of an IP access list element."
    INDEX   { rsClassifierControlListId, rsClassifierControlListElemId }
    ::= { rsClassifierControlListElementTable 1 }

RsClassifierControlListElementEntry ::= SEQUENCE {
    rsClassifierControlListElemId
        Integer32,
    rsClassifierControlListElemRowStatus
        RowStatus,
    rsClassifierControlListNotSrc
        TruthValue,
    rsClassifierControlListSrc
        IpAddress,
    rsClassifierControlListSrcMask
        IpAddress,
    rsClassifierControlListNotDst
        TruthValue,
    rsClassifierControlListDst
        IpAddress,
    rsClassifierControlListDstMask
        IpAddress,
    rsClassifierControlListNotProtocol
        TruthValue,
    rsClassifierControlListProtocol
        Integer32,
    rsClassifierControlListTosByte
        Integer32,
    rsClassifierControlListMask
        Integer32,
--
-- TCP/UDP specific element data.
--
    rsClassifierControlListSrcOperator
        RsClaclPortOperator,
    rsClassifierControlListSrcFromPort
        Integer32,
    rsClassifierControlListSrcToPort
        Integer32,
    rsClassifierControlListDestOperator
        RsClaclPortOperator,
    rsClassifierControlListDestFromPort
        Integer32,
    rsClassifierControlListDestToPort
        Integer32,
--
-- ICMP specific element data.
--
    rsClassifierControlListICMPType
        Integer32,
    rsClassifierControlListICMPCode
        Integer32,
--
-- IGMP specific element data.
--
    rsClassifierControlListIGMPType
        Integer32,
---
--- TCP flags classification data.
---
    rsClassifierControlListTcpFlagsValue
        Integer32,
    rsClassifierControlListTcpFlagsMask
        Integer32,
---
--- IP flags and frag classification data.
---
    rsClassifierControlListIpFlagsValue
        Integer32,
    rsClassifierControlListIpFlagsMask
        Integer32,
    rsClassifierControlListIpFragValue
        RsPolicyIpFragValue
    }

rsClassifierControlListElemId OBJECT-TYPE
    SYNTAX      Integer32 (0..10000)
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "The relative position of this entry within its classifier control list.
        Classifier control list entries are searched in this sequence (low to 
        high values) until a match is found."
    ::= { rsClassifierControlListElementEntry 1 }

rsClassifierControlListElemRowStatus OBJECT-TYPE
    SYNTAX      RowStatus
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "Controls creation/deletion of conceptual rows within
         this table.  

         This table provides a partial implementation for rowStatus.
         Rows may be created using createAndGo and createAndWait.  Once
         a row has been made active the row status may not be changed.
        "
    ::= { rsClassifierControlListElementEntry 2 }

rsClassifierControlListNotSrc OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "Invert the meaning of the source ip address and mask objects.
         for example 'not 10.10.0.90/255.255.255.255 (host address)'
         would result in all source addresses except for host 10.19.9.90
         being matched.
        "
    DEFVAL { false }
    ::= { rsClassifierControlListElementEntry 3 } 

rsClassifierControlListSrc OBJECT-TYPE
    SYNTAX      IpAddress
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "A source IP address. A subject IP address is first masked with the
        value of rsClassifierControlListSrcMask, then the result is compared to this value.
        Setting both this object and its corresponding mask to 0.0.0.0 acts as
        a wildcard, matching any source IP address."
    DEFVAL  { '00000000'H }    -- 0.0.0.0
    ::= { rsClassifierControlListElementEntry 4 }

rsClassifierControlListSrcMask OBJECT-TYPE
    SYNTAX      IpAddress
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "The IP address mask to be applied to a subject source IP address before
        comparing it to rsClassifierControlListSrc.  Ones in the mask identify which bits
        in the subject IP address are significant for the comparison.

        To be considered valid, a nonzero value for this object must contain a 
        single contiguous string of ones, beginning with the most significant bit 
        of the mask."
    DEFVAL  { '00000000'H }    -- 0.0.0.0
    ::= { rsClassifierControlListElementEntry 5 }

rsClassifierControlListNotDst OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "Invert the meaning of the destination ip address and mask objects.
         For example, 'not 10.10.0.90/255.255.255.255 (host address)'
         would result in all source addresses except for host 10.19.9.90
         being matched.
        "
    DEFVAL { false }
    ::= { rsClassifierControlListElementEntry 6 } 

rsClassifierControlListDst OBJECT-TYPE
    SYNTAX      IpAddress
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "A destination IP address. A subject IP address is first masked with the
        value of rsClassifierControlListDstMask, then the result is compared to this value.
        Setting both this object and its corresponding mask to 0.0.0.0 acts as
        a wildcard, matching any destination IP address."
    DEFVAL  { '00000000'H }    -- 0.0.0.0
    ::= { rsClassifierControlListElementEntry 7 }

rsClassifierControlListDstMask OBJECT-TYPE
    SYNTAX      IpAddress
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "The IP address mask to be applied to a subject destination IP address before
        comparing it to rsClassifierControlListDst.  Ones in the mask identify which bits
        in the IP address are significant for the comparison.

        To be considered valid, a nonzero value for this object must contain a 
        single contiguous string of ones, beginning with the most significant bit
        of the mask."
    DEFVAL  { '00000000'H }    -- 0.0.0.0
    ::= { rsClassifierControlListElementEntry 8 }

rsClassifierControlListNotProtocol OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "Invert the meaning of the protocol object.  For example, 'not tcp'
         matches any protocol except for tcp.
        "
    DEFVAL { false }
    ::= { rsClassifierControlListElementEntry 9 }

rsClassifierControlListProtocol OBJECT-TYPE
    SYNTAX      Integer32 (0..255)
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "An IP Protocol value. Nonzero values match a specific IP Protocol value
        (e.g. 6 for TCP) carried in an IP packet; a value of zero acts as a wildcard, 
        matching any IP Protocol."
    DEFVAL  { 0 }
    ::= { rsClassifierControlListElementEntry 10 }

rsClassifierControlListTosByte OBJECT-TYPE
    SYNTAX      Integer32 (0..255)
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "The IP tos byte value to match."
    DEFVAL  { 0 }
    ::= { rsClassifierControlListElementEntry 11 }

rsClassifierControlListMask OBJECT-TYPE
    SYNTAX      Integer32 (0..255)
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "The mask to use for tos byte checks."
    DEFVAL  { 0 }
    ::= { rsClassifierControlListElementEntry 12 }


rsClassifierControlListSrcOperator OBJECT-TYPE
    SYNTAX      RsClaclPortOperator
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "Operator for use in comparing source ports."
    DEFVAL { noOperator }
    ::= { rsClassifierControlListElementEntry 13 }

rsClassifierControlListSrcFromPort OBJECT-TYPE
    SYNTAX      Integer32 (0..255)
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "Source UDP or TCP 'from' port number."
    DEFVAL { 0 }
    ::= { rsClassifierControlListElementEntry 14 }

rsClassifierControlListSrcToPort OBJECT-TYPE
    SYNTAX      Integer32 (0..255)
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "Source UDP or TCP 'to' port number."
    DEFVAL { 0 }
    ::= { rsClassifierControlListElementEntry 15 }

rsClassifierControlListDestOperator OBJECT-TYPE
    SYNTAX      RsClaclPortOperator
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "Operator for use in comparing Destination ports."
    DEFVAL { noOperator }
    ::= { rsClassifierControlListElementEntry 16 }

rsClassifierControlListDestFromPort OBJECT-TYPE
    SYNTAX      Integer32 (0..255)
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "Destination UDP or TCP 'from' port number."
    DEFVAL { 0 }
    ::= { rsClassifierControlListElementEntry 17 }

rsClassifierControlListDestToPort OBJECT-TYPE
    SYNTAX      Integer32 (0..255)
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "Destination UDP or TCP 'to' port number."
    DEFVAL { 0 }
    ::= { rsClassifierControlListElementEntry 18 }

rsClassifierControlListICMPType OBJECT-TYPE
    SYNTAX      Integer32 (0..255)
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "Optional ICMP message type for classification."
    DEFVAL { 0 }
    ::= { rsClassifierControlListElementEntry 19 }

rsClassifierControlListICMPCode OBJECT-TYPE
    SYNTAX      Integer32 (0..255)
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "Optional ICMP message code for classification."
    DEFVAL { 0 }
    ::= { rsClassifierControlListElementEntry 20 }


rsClassifierControlListIGMPType OBJECT-TYPE
    SYNTAX      Integer32 (0..255)
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "Optional IGMP message type for classification."
    DEFVAL { 0 }
    ::= { rsClassifierControlListElementEntry 21 }

rsClassifierControlListTcpFlagsValue OBJECT-TYPE
    SYNTAX      Integer32 (0..63)
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "Optional TCP flags value for classification."
    DEFVAL { 0 }
    ::= { rsClassifierControlListElementEntry 22 }

rsClassifierControlListTcpFlagsMask OBJECT-TYPE
    SYNTAX      Integer32 (0..63)
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "Optional TCP flags mask for classification. TCP flag bits
         not specified in the mask are don't care bits."
    DEFVAL { 0 }
    ::= { rsClassifierControlListElementEntry 23 }

rsClassifierControlListIpFlagsValue OBJECT-TYPE
    SYNTAX      Integer32 (0..7)
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "Optional IP flags value for classification."
    DEFVAL { 0 }
    ::= { rsClassifierControlListElementEntry 24 }

rsClassifierControlListIpFlagsMask OBJECT-TYPE
    SYNTAX      Integer32 (0..7)
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "Optional IP flags mask for classification. IP flag bits
         not specified in the mask are don't care bits"
    DEFVAL { 0 }
    ::= { rsClassifierControlListElementEntry 25 }

rsClassifierControlListIpFragValue OBJECT-TYPE
    SYNTAX      RsPolicyIpFragValue
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "Optional IP flags mask for classification. IP flag bits
         not specified in the mask are don't care bits"
    DEFVAL { notSpecified }
    ::= { rsClassifierControlListElementEntry 26 }

-- +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-- Policy Interface Table
-- +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

rsPolicyIfTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF RsPolicyIfEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "This table contains entries which represent attachment of 
         policies to interfaces."
    ::= { rsPolicyIf 1 }

rsPolicyIfEntry OBJECT-TYPE
    SYNTAX      RsPolicyIfEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "Each entry contains the attachment of policy(s) to an
         interface."
    INDEX   { rsPolicyIfInterfaceId }
    ::= { rsPolicyIfTable 1 }

RsPolicyIfEntry ::= SEQUENCE {
    rsPolicyIfInterfaceId
        Unsigned32,
    rsPolicyIfRowStatus
        RowStatus,
    rsPolicyIfInputPolicyId
        Integer32,
    rsPolicyIfOutputPolicyId
        Integer32,
    rsPolicyIfInputStatsEnable
        TruthValue,
    rsPolicyIfOutputStatsEnable
        TruthValue
    }

rsPolicyIfInterfaceId OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "The interface number representing the interface to which
         policy(s) have been attached."
    ::= { rsPolicyIfEntry 1 }

rsPolicyIfRowStatus OBJECT-TYPE
    SYNTAX      RowStatus
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "Controls creation/deletion of entries in this table
        according to the RowStatus textual convention, 
        constrained to support the following values only:

            createAndGo
            destroy

        *** LIMITED ACCESS LIST CONFIGURATION LEVEL ***

         1) RowStatus createAndGo/destroy operations
            have the following special-purpose semantics:

                createAndGo         Create an entry having the specified
                                    configuration and append it to the 
                                    target list, i.e. create a policy table
                                    entry with the associated policy name.

                destroy             Destroy the specified list and all of 
                                    its constituent elements.

         Policy row members may not be modified once the row has been
         created."
    ::= { rsPolicyIfEntry 2 }

rsPolicyIfInputPolicyId OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "This object is used to control the attachment of
         input policies to the interface specified by 
         rsPolicyIfInterfaceId.

         Attach a policy by setting this value to the 
         id of the policy.

         Remove a policy attachment by setting this value
         to zero.

        This object may be modified while the row is active.
        If so, the attachment is immediate."
    DEFVAL { 0 }
    ::= { rsPolicyIfEntry 3 }

rsPolicyIfOutputPolicyId OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "This object is used to control the attachment of
         output policies to the interface specified by 
         rsPolicyIfInterfaceId.

         Attach a policy by setting this value to the 
         id of the policy.

         Remove a policy attachment by setting this value
         to zero.

        This object may be modified while the row is active.
        If so, the attachment is immediate."
    DEFVAL { 0 }
    ::= { rsPolicyIfEntry 4 }

rsPolicyIfInputStatsEnable OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "This object is used to control the enabling and
         disabling of statistics for an input policy
         attachment.  

         Set this object to true to enable statistics.  
         Set this object to false to disable statistics.

         This object may be modified while the row is
         active.  The desired value must be set before the
         policy is attached or in a multiple object varbind.
         Failure to do so will result in the policy being attached
         with the previous value of rsPolicyInputStatsEnable."
    DEFVAL { false }
    ::= { rsPolicyIfEntry 5 }

rsPolicyIfOutputStatsEnable OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "This object is used to control the enabling and
         disabling of statistics for an output policy
         attachment.  

         Set this object to true to enable statistics.  
         Set this object to false to disable statistics.

         This object may be modified while the row is
         active.  The desired value must be set before the
         policy is attached or in a multiple object varbind.
         Failure to do so will result in the policy being attached
         with the previous value of rsPolicyOutputStatsEnable."
    DEFVAL { false }
    ::= { rsPolicyIfEntry 6 }


-- +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-- Policy Profile Table
-- +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

rsPolicyProfileTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF RsPolicyProfileEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "This table contains entries which represent attachment of 
         policies to dynamic interfaces through profiles."
    ::= { rsPolicyProfile 1 }

rsPolicyProfileEntry OBJECT-TYPE
    SYNTAX      RsPolicyProfileEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "Each entry contains the profile for attachment of policy(s) 
         to a dynamic interface."
    INDEX   { rsPolicyProfileId }
    ::= { rsPolicyProfileTable 1 }

RsPolicyProfileEntry ::= SEQUENCE {
    rsPolicyProfileId
        Unsigned32,
    rsPolicyProfileRowStatus
        RowStatus,
    rsPolicyProfileInputPolicyId
        Integer32,
    rsPolicyProfileOutputPolicyId
        Integer32,
    rsPolicyProfileInputStatsEnable
        TruthValue,
    rsPolicyProfileOutputStatsEnable
        TruthValue
    }

rsPolicyProfileId OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "The profile to which the policy attachment profile
         data belongs.  When this profile is applied to 
         a dynamic interface the associated policies will be
         applied to that interface."
    ::= { rsPolicyProfileEntry 1 }

rsPolicyProfileRowStatus OBJECT-TYPE
    SYNTAX      RowStatus
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "Controls creation/deletion of entries in this table
        according to the RowStatus textual convention, 
        constrained to support the following values only:

            createAndGo
            destroy

        *** LIMITED ACCESS LIST CONFIGURATION LEVEL ***

         1) RowStatus createAndGo/destroy operations
            have the following special-purpose semantics:

                createAndGo         Create an entry having the specified
                                    configuration and append it to the 
                                    target list, i.e. create a policy table
                                    entry with the associated policy name.

                destroy             Destroy the specified list and all of 
                                    its constituent elements.

         Policy row members may not be modified once the row has been
         created."
    ::= { rsPolicyProfileEntry 2 }

rsPolicyProfileInputPolicyId OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "This object is used to control the attachment of
         input policies to dynamic interfaces configured
         by the profile identified by rsPolicyProfileId.

         Attach a policy by setting this value to the 
         id of the policy.

         Remove a policy attachment by setting this value
         to zero.

        This object may be modified while the row is active.
        Changes made to a row in this table do not take effect
        until the profile is applied."
    DEFVAL { 0 }
    ::= { rsPolicyProfileEntry 3 }

rsPolicyProfileOutputPolicyId OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "This object is used to control the attachment of
         output policies to dynamic interfaces configured
         by the profile identified by rsPolicyProfileId.

         Attach a policy by setting this value to the 
         id of the policy.

         Remove a policy attachment by setting this value
         to zero.

        This object may be modified while the row is active.
        Changes made to a row in this table do not take effect
        until the profile is applied to an interface."
    DEFVAL { 0 }
    ::= { rsPolicyProfileEntry 4 }

rsPolicyProfileInputStatsEnable OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "This object is used to control the enabling and
         disabling of statistics for an input policy
         attachment performed by a profile.  

         Set this object to true to enable statistics.  
         Set this object to false to disable statistics.

         This object may be modified while the row is
         active.  The changes will not take effect until
         the profile is applied to an interface."
    DEFVAL { false }
    ::= { rsPolicyProfileEntry 5 }

rsPolicyProfileOutputStatsEnable OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "This object is used to control the enabling and
         disabling of statistics for an output policy
         attachment performed by a profile.  

         Set this object to true to enable statistics.  
         Set this object to false to disable statistics.

         This object may be modified while the row is
         active.  The changes will not take effect until
         the profile is applied to an interface."
    DEFVAL { false }
    ::= { rsPolicyProfileEntry 6 }


--
-- The Policy interfce statistics table
--
-- The policy interface statistics table presents statistics as green,
-- yellow, and red packets and bytes. This is because the interpretation
-- of the statistics is linked to the type of policy rule which has 
-- resulted in the generation of the statistics.
--
-- Each policy rule and how the statistics are interpreted is as follows:
--
-- nextHopRule:
--     rsPolicyIfStatsGreenPackets and rsPolicyIfGreenBytes represent the
--     number of packets and bytes routed to the next-hop ip address.
--  
--     rsPolicyIfStatsYellowPackets, rsPolicyIfYellowBytes, 
--     rsPolicyIfStatsRedPackets, and rsPolicyIfRedBytes are always zero.
--
-- filterRule:
--     rsPolicyIfStatsGreenPackets and rsPolicyIfGreenBytes represent the
--     number of packets and bytes filtered (dropped) by the filter rule.
--  
--     rsPolicyIfStatsYellowPackets, rsPolicyIfYellowBytes, 
--     rsPolicyIfStatsRedPackets, and rsPolicyIfRedBytes are always zero.
--
-- nextInterfaceRule:
--     rsPolicyIfStatsGreenPackets and rsPolicyIfGreenBytes represent the
--     number of packets and bytes routed to the next-interface interface.
--  
--     rsPolicyIfStatsYellowPackets, rsPolicyIfYellowBytes, 
--     rsPolicyIfStatsRedPackets, and rsPolicyIfRedBytes are always zero.
--
-- rateLimitRule:
--     rsPolicyIfStatsGreenPackets and rsPolicyIfGreenBytes represent the
--     number of packets and bytes policed by the rateLimitRule committed
--     action.
--
--     rsPolicyIfStatsYellowPackets and rsPolicyIfYellowBytes represent the
--     number of packets and bytes policed by the rateLimitRule conformed
--     action.
--
--     rsPolicyIfStatsRedPackets and rsPolicyIfRedBytes represent the
--     number of packets and bytes policed by the rateLimitRule exceeded
--     action.
--
-- markingRule:
--     rsPolicyIfStatsGreenPackets and rsPolicyIfGreenBytes represent the
--     number of packets and bytes marked by the markingRule.
--  
--     rsPolicyIfStatsYellowPackets, rsPolicyIfYellowBytes, 
--     rsPolicyIfStatsRedPackets, and rsPolicyIfRedBytes are always zero.
--
-- forwardRule:
--     rsPolicyIfStatsGreenPackets and rsPolicyIfGreenBytes represent the
--     number of packets and bytes forwarded by the forwardRule.
--  
--     rsPolicyIfStatsYellowPackets, rsPolicyIfYellowBytes, 
--     rsPolicyIfStatsRedPackets, and rsPolicyIfRedBytes are always zero.
--
--
rsPolicyIfStatsTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF RsPolicyIfStatsEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "Each entry within this table contains statistics data for an
         interface/policy rule combination.  Interfaces with policies 
         attached and statistics disabled are not represented in this
         table."
    ::= { rsPolicyStatistics 1 }

rsPolicyIfStatsEntry OBJECT-TYPE
    SYNTAX      RsPolicyIfStatsEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "Each entry defines a single statistics entry."
    INDEX   { rsPolicyIfStatsIfId, 
              rsPolicyIfStatsPolicyType,
              rsPolicyIfStatsPolicyId, 
              rsPolicyIfStatsRulePrec, 
              rsPolicyIfStatsRuleId,
              rsPolicyIfStatsClaclEntryNumber }
    ::= { rsPolicyIfStatsTable 1 }

RsPolicyIfStatsEntry ::= SEQUENCE {
    rsPolicyIfStatsIfId
        Integer32,
    rsPolicyIfStatsPolicyType
        RsPolicyAttachmentType,
    rsPolicyIfStatsPolicyId
        Integer32,
    rsPolicyIfStatsRulePrec
        Integer32,
    rsPolicyIfStatsRuleId
        Integer32,
    rsPolicyIfStatsClaclEntryNumber
        Integer32,
    rsPolicyIfStatsGreenPackets
        Counter64,
    rsPolicyIfStatsYellowPackets
        Counter64,
    rsPolicyIfStatsRedPackets
        Counter64,
    rsPolicyIfStatsGreenBytes
        Counter64,
    rsPolicyIfStatsYellowBytes
        Counter64,
    rsPolicyIfStatsRedBytes
        Counter64
    }

rsPolicyIfStatsIfId OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION 
        "The interface id corresponding to the stats block
         represented by this row."
    ::= { rsPolicyIfStatsEntry 1 }

rsPolicyIfStatsPolicyType OBJECT-TYPE
    SYNTAX      RsPolicyAttachmentType
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION 
        "The attachment point for the policy."
    ::= { rsPolicyIfStatsEntry 2 }

rsPolicyIfStatsPolicyId OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "The PolicyTable index of the policy corresponding to the 
         stats block represented by this row."
    ::= { rsPolicyIfStatsEntry 3 }

rsPolicyIfStatsRulePrec OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "The precedence of the policy rule corresponding to the
         stats block represented by this row."
    ::= { rsPolicyIfStatsEntry 4 }

rsPolicyIfStatsRuleId OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "The index of the policy rule corresponding to the
         stats block represented by this row."
    ::= { rsPolicyIfStatsEntry 5 }

rsPolicyIfStatsClaclEntryNumber OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "The index of the clacl entry number 
          corresponding to the stats block
         represented by this row."
    ::= { rsPolicyIfStatsEntry 6 }

rsPolicyIfStatsGreenPackets OBJECT-TYPE
    SYNTAX      Counter64
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The number of green packets policed by the policy rule."
    ::= { rsPolicyIfStatsEntry 7 } 

rsPolicyIfStatsYellowPackets OBJECT-TYPE
    SYNTAX      Counter64
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The number of yellow packets policed by the policy rule."
    ::= { rsPolicyIfStatsEntry 8 } 

rsPolicyIfStatsRedPackets OBJECT-TYPE
    SYNTAX      Counter64
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The number of red packets policed by the policy rule."
    ::= { rsPolicyIfStatsEntry 9 } 

rsPolicyIfStatsGreenBytes OBJECT-TYPE
    SYNTAX      Counter64
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The number of green bytes policed by the policy rule."
    ::= { rsPolicyIfStatsEntry 10 } 

rsPolicyIfStatsYellowBytes OBJECT-TYPE
    SYNTAX      Counter64
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The number of yellow bytes policed by the policy rule."
    ::= { rsPolicyIfStatsEntry 11 } 

rsPolicyIfStatsRedBytes OBJECT-TYPE
    SYNTAX      Counter64
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The number of red bytes policed by the policy rule."
    ::= { rsPolicyIfStatsEntry 12 } 

END